This invention relates to updating computer software and data.
Although computer program components are frequently upgraded and improved, ensuring that users have access to updates can be difficult. Currently, when new or updated library or content files are available, the information is posted to web sites or sent to users on a compact disk (CD) or other traditional media.
When an update is available over the Internet, the user must generally access the relevant web site (i.e., site on the World Wide Web), choose to download an installer application and then run the installer. The user typically lets the installer determine whether or not any new material is applicable to the user""s machine. When an update is available on traditional media such as a CD, the same process is required, except there is no downloading step. There are a number of problems with the current method for providing users with software updates. First, users must know when an update is available and how to obtain the update. Second, once users become aware that an update is available, they may be unsure of whether or not they need the proffered update and may go through the time consuming process of running the installer program without any need to do so. Third, providing updates on traditional media has its own problems: most importantly, the significant cost of manufacturing and distributing the updates to users.
A different technique to download and install new versions of software is implemented by Microsoft(copyright) Software Update Channels. These are specialized web browser channels that a vendor can use to notify users of software updates and also deliver and install the updates on the users"" computers. A Microsoft channel is a web site described by a Channel Definition Format (CDF) file. CDF is an Extensible Markup Language (XML) vocabulary, or XML-based data format, which can be used to organize a set of related Web resources. A CDF file provides a description of the resources in a channelxe2x80x94describing how resources in the channel will be used or displayed, for example, and how frequently the channel should be monitored for updates. The CDF file for a Software Update Channel identifies the current version number of the vendor""s software and defines the channel. Microsoft(copyright) Internet Explorer 4.0 and later can monitor CDF files for changes. When changes to the software""s version number are discovered in a CDF file, Internet Explorer can notify the user that a new version of the vendor""s software is available. A CDF file can also contain details like the unique name of the software, hardware configurations the software will run on, and the location of the distribution unit. A CDF file may also define a schedule that Internet Explorer should use for update monitoring.
In contrast, the present invention provides a technology in which an update mechanism operates in conjunction with each participating software application product, so that users receive notices of, and information about, updates to a product from the product itself. The invention features methods and apparatus that identify applicable updates for computer programs and for program components and content. An update can be any form of code or content packaged in one or more files. An update can be an updated version of material that already exists on the client machine or it can be a new material.
In general, in one aspect, the invention provides methods and apparatus, including computer program products, for providing updates for computer program components on a client machine that can be connected to web sites on the Internet. In this aspect, an update monitoring process running on a client machine maintains a local database of application-related information. The process can receive registration information from, and thereby register, multiple computer program applications installed on the client machine.
One or more servers remote from the client machine can communicate with the client machine over the Internet, and each server maintains meta-information concerning at least one of the multiple registered applications. The process executes periodically and at that time downloads from one or more of the servers, according to what applications are registered with the process, meta-information specifying what are the current versions of all components each registered application requires. The process also compares the downloaded meta-information with information obtained on the client machine to identify any registered application for which an update should be performed and sends a notification that an update should be performed to each identified application. The registered applications have programming that can receive a notification from the process running on the client machine and to cause an update to be performed in response to the notification.
Apparatus implementing techniques of the invention can include a programmed computer or a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor.
Advantages that may be seen in particular implementations of the invention include one or more of the following. Updating can be accomplished without uploading any data from the client machine to any other computer. This helps to maintain the privacy of the client machine and the user. Any application, including a shrink-wrapped application, can easily be configured with a shared library component that links the application with a common, client-side, update monitoring process. An application can specify where its meta-information can be found on the Internet. An application can display update information to a user within the context of the application itself.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings and from the claims.